package editor.main;

import editor.modelo.EditorFloor;
import editor.modelo.JSONConverter;

public class Memento {

	public String[] estados;
	public int head= 1;
	public int tail = 0;
	private JSONConverter jc = new JSONConverter(EditorFloor.class);

	public Memento(int size){
		estados = new String[size];
	}
	public void save(EditorFloor f){
		if(head == tail){ //avanzo uno la cola y chau estado
			tail = (tail+1)%estados.length;
		}
		estados[head] = jc.toJSONString(f);
		head = (head+1) % estados.length;
	//	System.out.println("guardado estado:" + (head-1));
	}

	public void restore(EditorFloor f){
		System.out.println("restaurar estado:" + (head-1));
		if((tail+1)% estados.length == head){ //no hay nada para deshacer

		}else
		{
			head = (head-1+ estados.length) % estados.length;
			jc.loadFloorfromJSONString(estados[head], f);
		}			

	}

}
